---
title: Checker
---

You can use the checker to check the status of your services. The checker is a
global service that runs on Fly.io machines and is available in the following
supported regions:

- `ams` (Amsterdam)
- `hkg` (Hong-Kong)
- `iad` (Northern Virginia)
- `gru` (São Paulo)
- `syd` (Sydney)
- `jnb` (Johannesburg)

Send a `POST` request to `https://checker.openstatus.dev/ping/[region]` with the
`url` and `method` as `body` props.

<Note>
  You might want to define the `prefer-fly-region: [region]` header
  additionally.
</Note>

### Example

```bash
curl --request POST \
  --url https://checker.openstatus.dev/ping/ams \
  --header 'Content-Type: application/json' \
  --header 'x-openstatus-key: <YOUR_API_KEY>' \
  --header 'prefer-fly-region: ams' \
  --data '{
  "url": "https://api.openstatus.dev/ping",
  "method": "GET"
}'
```

Response:

```json
{
  "status": 200,
  "latency": 18,
  "headers": {
    "Content-Type": "application/json; charset=UTF-8",
    "Date": "Sat, 20 Jan 2024 16:31:18 GMT",
    "Fly-Request-Id": "01HMKVCQ9P2CBDS5GPFBN8EVYP-ams",
    "Server": "Fly/f9c163a6 (2024-01-16)",
    "Via": "2 fly.io"
  },
  "time": 1705768279337,
  "timing": {
    "dnsStart": 1705768279337,
    "dnsDone": 1705768279343,
    "connectStart": 1705768279343,
    "connectDone": 1705768279343,
    "tlsHandshakeStart": 1705768279343,
    "tlsHandshakeDone": 1705768279350,
    "firstByteStart": 1705768279350,
    "firstByteDone": 1705768279355,
    "transferStart": 1705768279355,
    "transferDone": 1705768279355
  }
}
```

All timestamps are in UNIX epoch milliseconds. The response `headers` are
unknown key value string pairs. All other props are fixed.

```ts
type CheckerResponse = {
  status: number;
  latency: number;
  headers: Record<string, string>;
  time: number;
  timing: {
    dnsStart: number;
    dnsDone: number;
    connectStart: number;
    connectDone: number;
    tlsHandshakeStart: number;
    tlsHandshakeDone: number;
    firstByteStart: number;
    firstByteDone: number;
    transferStart: number;
    transferDone: number;
  };
};
```

You can use it to check from a region the following metrics:

- DNS Look up time,
- TLS handshake time,
- TCP connection time,
- Time to first byte.
